package phonemsg

import (
	"encoding/json"
	"fmt"
	"html/template"
	"strings"
)

// DefaultTemplateName 默认模板名称
const DefaultTemplateName = "PhoneMsgTemplate"

// DefaultFailureMsg 默认失败消息
const DefaultFailureMsg = "模板渲染失败"

// JsonDataToTemplate 将JSON数据渲染到模板中
func JsonDataToTemplate(jsonData, temptext string) string {
	if jsonData == "" || temptext == "" {
		return DefaultFailureMsg
	}

	// 解析JSON数据到map
	var data map[string]interface{}
	if err := json.Unmarshal([]byte(jsonData), &data); err != nil {
		return fmt.Sprintf("JSON解析错误: %v", err)
	}

	// 创建并解析模板
	tmpl, err := template.New(DefaultTemplateName).Parse(temptext)
	if err != nil {
		return fmt.Sprintf("模板解析错误: %v", err)
	}

	// 执行模板渲染
	var result strings.Builder
	if err := tmpl.Execute(&result, data); err != nil {
		return fmt.Sprintf("模板渲染错误: %v", err)
	}

	return result.String()
}
